import org.apache.spark.sql.SparkSession

object af {

  def main(args: Array[String]): Unit = {
    // 创建 SparkSession
    val spark = SparkSession.builder()
      .appName("Test")
      .master("local[*]")
      .getOrCreate()
    val sc = spark.sparkContext

    try {
      //从内存中读取数据创建RDD--parallelize()
      // 1. 定义数据

      // 原代码保持不变
      val rdd_1 = sc.parallelize(List(('a', 1), ('a', 2), ('b', 1), ('c', 1), ('c', 1)))
      val g_rdd = rdd_1.groupByKey()
      val res7 = g_rdd.collect
      val res8 = g_rdd.map(x => (x._1, x._2.size)).collect

      // 新增排序逻辑（输出顺序：按值降序→按键降序）
      val sortedRes = res8.sortBy {
        case (k, v) => (-v, -k) // 通过负号实现降序
      }.map {
        case (k, v) => s"('$k',$v)"
      }.mkString(", ")

      println(sortedRes)
    } finally {
      // 停止 SparkSession
      spark.stop()
    }
  }
}
